热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

SwiftUI`@State`关键字有什么作用?

如何解决《SwiftUI`@State`关键字有什么作用?》经验,为你挑选了1个好方法。

该SwiftUI教程使用@State关键字来表示可变UI状态:

@State var showFavoritesOnly= false

它提供了以下摘要:

状态是一个值或一组值,可以随时间变化,并影响视图的行为,内容或布局。您可以将属性与@State属性一起使用,以将状态添加到视图中。

关键字的确切含义是什么?

变异@State变量如何导致视图重新计算?

其他变量在body吸气剂中如何不变?

fredpi.. 26

@State关键字是@propertyWrapper,最近刚刚在雨燕5.1中引入的功能。正如在相应提案中所解释的那样,它有点像价值包装程序,它避免了样板代码。


旁注:@propertyWrapper以前称为@propertyDelegate,但此后发生了变化。有关更多信息,请参见此帖子。


该官员@state文档具有以下的说:

SwiftUI 管理您声明为状态的任何属性的存储当状态值更改时,视图将使其外观无效并重新计算body。将状态用作给定视图的唯一事实来源。

State实例不是值本身;它不是值本身。这是读取和更改值的一种方法。要访问状态的基础值,请使用其value属性。

因此,当您初始化标记为的属性时@State,您实际上并不是在创建自己的变量,而是提示在后台SwiftUI创建“东西”来存储您设置的内容并从现在开始对其进行监视!您@State var只是充当访问此包装器委托

每次您的@State变量被写入时SwiftUI就会知道它正在监视它。它也将知道是否@State变量被读出Viewbody。使用此信息,它将能够重新计算View@Statebody对该变量进行更改之后在其变量中引用任何变量。



1> fredpi..:

@State关键字是@propertyWrapper,最近刚刚在雨燕5.1中引入的功能。正如在相应提案中所解释的那样,它有点像价值包装程序,它避免了样板代码。


旁注:@propertyWrapper以前称为@propertyDelegate,但此后发生了变化。有关更多信息,请参见此帖子。


该官员@state文档具有以下的说:

SwiftUI 管理您声明为状态的任何属性的存储当状态值更改时,视图将使其外观无效并重新计算body。将状态用作给定视图的唯一事实来源。

State实例不是值本身;它不是值本身。这是读取和更改值的一种方法。要访问状态的基础值,请使用其value属性。

因此,当您初始化标记为的属性时@State,您实际上并不是在创建自己的变量,而是提示在后台SwiftUI创建“东西”来存储您设置的内容并从现在开始对其进行监视!您@State var只是充当访问此包装器委托

每次您的@State变量被写入时SwiftUI就会知道它正在监视它。它也将知道是否@State变量被读出Viewbody。使用此信息,它将能够重新计算View@Statebody对该变量进行更改之后在其变量中引用任何变量。


推荐阅读
  • iOS 开发技巧:TabBarController 自定义与本地通知设置
    本文介绍了如何在 iOS 中自定义 TabBarController 的背景颜色和选中项的颜色,以及如何使用本地通知设置应用程序图标上的提醒个数。通过这些技巧,可以提升应用的用户体验。 ... [详细]
  • 本文探讨了一个场景:用户成功登录后,如何确保Master-Detail视图控制器以模态形式展示。 ... [详细]
  • 使用Swift 2.2创建我的第一个Xcode应用
    本文将指导您如何使用Xcode 6搭建并运行一个简单的iOS应用程序。从启动Xcode到执行首个应用,每个步骤都将详细介绍。 ... [详细]
  • 本文将详细介绍如何封装一个多功能的PickerView组件,包括文本选择、日期选择和地理位置选择等功能,旨在提供一个更加灵活和易于使用的PickerView解决方案。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 高效提取PDF页面的实用技巧
    在学习和工作中,我们经常需要与他人共享PDF格式的资料。然而,有时只需要分享部分内容,而不仅仅是整个文档。本文将介绍如何使用福昕阅读器领鲜版高效地提取PDF页面,以提高文件传输效率和查阅便捷性。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • MacOS上高效的SVN管理工具Cornerstone安装指南
    本文详细介绍如何在MacOS上安装和配置高效SVN管理工具Cornerstone,涵盖其主要功能和优化后的性能提升。 ... [详细]
  • 本文详细介绍了 com.facebook.drawee.view.SimpleDraweeView 中的 setScaleType 方法,提供了多个实际代码示例,并解释了其在不同场景下的应用。 ... [详细]
  • 本文探讨了如何在Swift编程语言中先声明函数,随后再定义其具体实现的方法。 ... [详细]
author-avatar
浅小念豆科k
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有